#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL b[2001];
const int MOD = 1e9 + 7;
int main() {
  int n;
  cin >> n;
  b[1]=1; 
  for (int i = 2; i <= n; i++) {
    for (int j = n; j >= 1; j--) {
      b[j] = (b[j - 1] + j * b[j]) % MOD;
    }
  }
  // b[n][9] 就是n个不同小球 放入9个相同的盒子里面的可能数； b[n][9]* 9！
  // b[n][10] 就是n个不同小球 放入10个相同的盒子里面的可能数； b[n][10]* 10！
  long long jc = 1;
  long long ans = 0;
  for (int j = 1; j <= n; j++) {
    jc = (jc * j) % MOD;
    ans = ((jc * b[j]) % MOD + ans) % MOD;
  }
  cout << ans;

  return 0;
}